linux起動までを再度確認してみる #初心者 | 您所在的位置:网站首页 › cgroup subsys cpuset › linux起動までを再度確認してみる #初心者 |
勉強前イメージ
いろいろ忘れてしまってる・・・ 調査 起動順序ざっくりの順序としては以下になります。 電源を投入 BIOSの起動 ブートローダーの起動 カーネルの起動 initプロセスの起動以下から細かく見ていきます。 1. 電源を投入これはそのままで、サーバの電源を入れます。 2. BIOSの起動BIOSと書いていますが、実際現在はUEFIがほとんどです。 UEFIもBIOSも総称してBIOSと呼ばれることが多いです。 BIOSとは低レイヤーの制御プログラムとして組み込まれているものになります。 電源投入後、最初に実行されるベクターがメモリのプログラムを実行し、デバイスの初期化を行いブートローダーを起動します。 旧来のBIOSは2TBの容量の制限や最初に読み込まれるコードが16bitだったためOSが移り変わる際に使いづらくなりました。 そのためBIOSの後継機の UEFI が登場しBIOSの欠点を解消しました。 3. ブートローダーの起動linuxでは GRUB(またはGRUB2) がブートローダに該当しています。 ブートローダは以下の2段階に分かれています。(BIOSだと) MBRに格納されている以下の情報をロード MBR情報から呼び出される情報2段階になってる理由としては、 MBRに格納されているブートローダーのサイズが制限されているので全体を格納できず分割して置いています。 4. カーネルの起動カーネルが起動すると最初のプロセスのinitプロセスが実行される。 メモリの初期化やシステムクロックの設定、パーティションのマウントが実施される。 カーネルが起動時にどのようなことを処理したかは dmesgコマンド で確認が出来ます。 例としては以下のようなログになります。 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.10.0-1160.24.1.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Apr 8 19:51:47 UTC 2021 [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.24.1.el7.x86_64 root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet LANG=ja_JP.UTF-8 [ 0.000000] e820: BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved [ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000dffeffff] usable [ 0.000000] BIOS-e820: [mem 0x00000000dfff0000-0x00000000dfffffff] ACPI data 5. initプロセスの起動カーネルが最初に起動するプロセスがinitプロセスで、/etc/inittabに基づいて実施されます。 が、CentOS7では全部コメントアウトされていて実質使われていません。 /etc/inittabはSysVinitのときに使われており、 今はsystemdが主流なので、/etc/systemd/system配下のdefault.target に基づいて処理が行われます。 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target # # systemd uses 'targets' instead of runlevels. By default, there are two main targets: # # multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 # # To view current default target, run: # systemctl get-default # # To set a default target, run: # systemctl set-default TARGET.target # 勉強後イメージdmesgがカーネルのログだって知らなかった・・・・ バッファを超えたら先頭から上書きされるらしい いろんな歴史があって古いのもあるから難しいね。 参考 Linux - system boot 【Linux】ブートローダーからカーネルまでの起動プロセス 【 dmesg 】コマンド――カーネルが出力したメッセージを表示する |
CopyRight 2018-2019 实验室设备网 版权所有 |